#ifndef CARD_H
#define CARD_H

#include <QString>
#include <QHash>

// 逻辑意义上的卡牌
class Card
{
private:
    static QHash<QString, int> cardNoCmp;
public:
    static Card parseString(QString card);
    // 牌号
    QString cardNo; //2-10 J-A JOKER-A JOKER-B
    // 花色
    QString cardColor; //Spade黑桃 Heart红桃 Club梅花 Diamond方片

    //-----------构造------------
    Card(QString cardNo, QString cardColor);

    //-----------方法------------
    // 判断是不是大小王
    bool isJoker() const { return cardNo.startsWith("JOKER");}

    // 获取卡牌名
    QString getCardName(){ return cardColor==nullptr ? cardNo : cardColor+cardNo; }

    bool operator<(const Card& other);

    QString toString(){
        return this->cardNo + "|" + this->cardColor;
    }
};

#endif // CARD_H
